package com.ingenio.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.ingenio.business.Almacen;
import com.ingenio.business.DetallePedido;
import com.ingenio.business.Pedido;
import com.ingenio.business.Producto;
import com.ingenio.dao.AlmacenAdapter;
import com.ingenio.dao.PedidoAdapter;

/**
 * Servlet implementation class ControlDeCalidadServlet
 */
@WebServlet("/ControlDeCalidad")
public class ControlDeCalidadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ControlDeCalidadServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		if(request.getParameter("text") != ""){
			String jsonText = request.getParameter("text");
			try {
				JSONObject JSONrequest = new JSONObject(jsonText);
				PedidoAdapter pa = new PedidoAdapter();
				Integer id_pedido = JSONrequest.getInt("id_pedido");
				JSONArray ja = JSONrequest.getJSONArray("detalle_pedido");
				List<DetallePedido> lista = new ArrayList<>();
				DetallePedido dp = null;
				Pedido p = new Pedido();
				p.setIdPedido(id_pedido);
				Producto pr = null;
				for (int i = 0; i < ja.length(); i++) {
					JSONObject jo = (JSONObject) ja.get(i);
					pr = new Producto();
					pr.setIdProducto(jo.getString("cod_prod"));
					dp = new DetallePedido();
					dp.setCantidadPedida(jo.getDouble("cantidad_pedida"));
					dp.setCantidadEntregada(jo.getDouble("cantidad_recepcionada"));
					dp.setCantidadAEntregar(jo.getDouble("cantidad_ingresar"));
					dp.setPedido(p);
					dp.setProducto(pr);
					lista.add(dp);
				}
				p = pa.devolverPedido(id_pedido);
				p.setDetalle(lista);
				
				//HARCODEADO, tomar el ID del almacen del usuario
				AlmacenAdapter aa = new AlmacenAdapter();
				Almacen a = aa.devolverAlmacen(1);
				
				pa.entregarPedido(p, a);
				
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}
